home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d22 / search.arc / SEARCH.BAS < prev   
Encoding:
BASIC Source File  |  1985-09-14  |  3.1 KB  |  45 lines

  1. 10 CLEAR:KEY OFF:CLS
  2. 20 PRINT "Enter Drive Specification (A or B): ";:LINE INPUT DRIVE$:IF LEN(DRIVE$)=0 THEN 30 ELSE IF LEN(DRIVE$)>1 OR INSTR("AaBb",DRIVE$)=0 THEN 20 ELSE DRIVE$=CHR$(ASC(DRIVE$) AND 223):DRIVE$=DRIVE$+":"
  3. 30 PRINT :PRINT "ENTER NAME OF FILE TO BE SEARCHED"
  4. 31 PRINT "FILE MUST BE IN  `ASCI' "
  5. 40 ON ERROR GOTO 80:FI$="":LINE INPUT FI$:IF FI$="" THEN  ON ERROR GOTO 0:END
  6. 50 FOR I=1 TO LEN(F1$):AV=ASC(MID$(FI$,I,1)):IF AV<97 OR AV>122 THEN 60:ELSE MID$(FI$,I,1)=CHR$(AV+223)
  7. 60 NEXT
  8. 70 OPEN "I",1,DRIVE$+FI$:GOTO 90
  9. 80 PRINT "FILE NOT FOUND":PRINT :BEEP:RESUME 20
  10. 90 ON ERROR GOTO 0:GOSUB 250
  11. 100 CLS:PRINT :PRINT "ENTER STRING TO BE SEARCHED FOR...":LINE INPUT SEARCH$:IF SEARCH$="" THEN 100 ELSE CLS:KNT=0:LKNT=0:LN=0:MXCNT=0
  12. 105 PRINT :PRINT "STOP AFTER EACH FIND   (Y/N) ":LINE INPUT STP$:CLS
  13. 110 IF EOF(1)THEN 170 ELSE LINE INPUT #1,PT$:LKNT=LKNT+1:NB%=INSTR(PT$,SEARCH$):IF NB%=0 THEN 110 ELSE PRINT TAB(32);"RECORD NUMBER";LKNT:PRINT :PRINT PT$:KNT=KNT+1:LN$(MXCNT)=LN$(MXCNT)+LEFT$(PT$,INSTR(PT$," ")):IF LEN(LN$(MXCNT))>250 THEN MXCNT=MXCNT+1
  14. 120 DLIN=NB%\80+3:COL=NB%MOD 80:IF COL=0 THEN COL=80:DLIN=DLIN-1
  15. 130 IF COL+LEN(SEARCH$)>80 THEN 150
  16. 140 LOCATE DLIN,COL:COLOR 12:PRINT SEARCH$;:GOTO 160
  17. 150 LOCATE DLIN,COL:COLOR 12:PRINT LEFT$(SEARCH$,81-COL);:LOCATE DLIN+1,1:PRINT MID$(SEARCH$,82-COL);
  18. 160 COLOR 7:NB%=INSTR(NB%+1,PT$,SEARCH$)
  19. 161 IF NB%=0 THEN IF STP$<>"N" THEN LOCATE 8,1:LINE INPUT AN$:CLS:GOTO 110 ELSE CLS:GOTO 110 ELSE KNT=KNT+1:GOTO 120
  20. 170 CN$=STR$(KNT):IF KNT=0 THEN CN$=" no"
  21. 180 CLOSE:IF KNT<2 THEN OC$=" occurrence ":VB$="was":LI$= " LINE:" ELSE OC$=" occurrences ":VB$="were":LI$=" LINES:"
  22. 190 PRINT "A total of";LKNT;"record were searched."
  23. 200 PRINT :PRINT "There ";VB$;CN$;OC$;"of the string ";CHR$(34);SEARCH$;CHR$(34);"."
  24. 210  IF KNT<>0 THEN PRINT :PRINT "The";OC$;VB$;" found in the following";LI$:MCNT=0 ELSE GOTO 240
  25. 220 GOSUB 290:IF LEN(LN$(MCNT))<=6 AND MCNT=MXCNT THEN GOTO 240 ELSE IF LEN(LN$(MCNT))<=6 THEN MCNT=MCNT+1:IF POS(0)>=74 THEN PRINT :GOTO 220 ELSE GOTO 220
  26. 230 LN$(MCNT)=MID$(LN$(MCNT),INSTR(LN$(MCNT)," ")+1):IF POS(0)=74 THEN PRINT :GOTO 220 ELSE GOTO 220
  27. 240 PRINT :PRINT :IF FI$="TEMP.SCH" THEN KILL FI$:END ELSE END
  28. 250 LINE INPUT#1,PT$:CLOSE:TGT$=LEFT$(PT$,1):IF INSTR("0123456789",TGT$)<>0 THEN OPEN "I",1,DRIVE$+FI$:RETURN
  29. 260 GOTO 64000
  30. 290 PRINT USING "#######";VAL(LEFT$(LN$(MCNT),INSTR(LN$(MCNT)," ")));:RETURN
  31. 64000 FLNM$=FI$
  32. 64010 TEMP$="TEMP.SCH"
  33. 64020 PROGRAM$="SEARCH.BAS
  34. 64030 LINUM=64040!:GOTO 65000
  35. 64040 FI$=FLNM$:GOTO 70
  36. 65000 REM PROGRAM WILL CONVERT EXISTING PROGRAM TO ASC
  37. 65010 'FIRST PROGRAM MUST DEFINE FLNM$,TEMP$,PROGRAM$,LINUM(LINE NUMBER TO START)
  38. 65020 CLS
  39. 65030 LOCATE 1,20:PRINT "PRESS  <ENTER> KEY TO CONTINUE"
  40. 65040 A$="LOAD"+CHR$(34)+FLNM$+CHR$(34)
  41. 65050 B$="SAVE"+CHR$(34)+TEMP$+CHR$(34)+",A"
  42. 65060 C$="FLNM$="+CHR$(34)+TEMP$+CHR$(34)+":CHAIN"+CHR$(34)+PROGRAM$+CHR$(34)+","+STR$(LINUM)+",ALL"
  43. 65070 LOCATE 9,1:PRINT A$:LOCATE 11,1:PRINT B$:LOCATE 13,1:PRINT C$:LOCATE 8,1
  44. 65080 DEF SEG=0:POKE 1052,PEEK(1050): POKE 1050,30: POKE 1052,34: POKE 1054,13:POKE 1056,13
  45.